﻿using System;
using System.Collections.Generic;
using System.Text;
namespace SvnLogParser.Utils {
	public static class MiscUtils {
		
		/// <summary>
		/// Renvoie si la valeur est dans le tableau
		/// </summary>
		/// <typeparam name="T">Type de la valeur</typeparam>
		/// <param name="value">Valeur à rechercher</param>
		/// <param name="objects">Liste de valeurs dans lesquelles la recherche s'applique</param>
		/// <returns></returns>
		public static bool In<T>( this T value, params T[] objects )
		{
			return Array.IndexOf<T>(objects, value) > -1;
		}

		/// <summary>
		/// Renvoie la collection passée en paramètre sous forme de chaîne.
		/// Les items de la collections sont séparés par la chaîne spécifiée.
		/// </summary>
		/// <param name="coll">Collection à convertir</param>
		/// <param name="separator">Chaîne de séparation</param>
		/// <returns></returns>
		public static string GetCollectionAsString<T>( this IEnumerable<T> coll, string separator )
		{
			StringBuilder sb = new StringBuilder();
			bool firstItem = true;
			foreach (T item in coll) {
				if (!firstItem) {
					sb.Append(separator);
				} else {
					firstItem = false;
				}
				sb.Append(item);
			}
			return sb.ToString();
		}
	}
}
